// Package main 提供了一个使用 Gin 框架构建的简单 Web 服务器
// 主要功能：启动一个监听 8000 端口的 HTTP 服务器，处理根路径请求
package main

import (
	"github.com/gin-gonic/gin" // 导入 Gin Web 框架
)

// Index 处理根路径 "/" 的 GET 请求
// 返回简单的问候消息 "Hello 枫枫!"
// 参数:
//   - context: Gin 上下文对象，用于处理 HTTP 请求和响应
func Index(context *gin.Context) {
	// 使用 context.String 方法返回纯文本响应，状态码为 200
	// 参数1: HTTP状态码，200表示请求成功
	// 参数2: 要返回的字符串内容
	context.String(200, "Hello 枫枫!")
}

// main 函数是程序入口点，初始化 Gin 路由器并启动 Web 服务器
func main() {
	// 设置 Gin 运行模式为发布模式（生产环境）
	// 可用模式有：debug（开发模式，带日志）、release（发布模式）、test（测试模式）
	gin.SetMode("release")

	// 创建默认的 Gin 路由器实例，包含 Logger 和 Recovery 中间件
	// Logger 中间件用于记录请求日志
	// Recovery 中间件用于从 panic 中恢复并返回 500 错误
	router := gin.Default()

	// 注册路由处理器，将根路径 "/" 的 GET 请求映射到 Index 函数
	// 当用户访问 http://localhost:8000 时，会调用 Index 函数处理请求
	router.GET("/", Index)

	// 启动 HTTP 服务器，监听 8000 端口
	// router.Run(":8000") 等价于 router.Run("0.0.0.0:8000")，绑定到所有网络接口
	// 服务器启动后将在控制台输出 listening on :8000
	// 如果启动失败，会返回一个 error 类型的错误信息
	if err := router.Run(":8000"); err != nil {
		// 使用 panic 输出启动失败的错误信息
		panic(err)
	}
}
